package br.unisal.repository;

import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

import br.unisal.domain.Produto;

public class ProdutoRepositoryTeste {

	private ProdutoRepository produtoRepository;
	private Produto produto1, produto2;
	
	
	@Before
	public void inicializa(){
		produtoRepository = new ProdutoRepository();
		produto1 = new Produto(30, "tfrango", 1, "tborda", 30.00, true);
		produto2 = new Produto(31, "ttfrango", 1, "ttborda", 30.00, true);
		produtoRepository.adicionaNovoProduto(produto1);
		produtoRepository.adicionaNovoProduto(produto2);
	}
	
	@Test
	public void testaAdicionaNovoProdutoEPegaProdutoPorCodigo() {
		assertEquals(produto1, produtoRepository.getProdutoPeloCodigo(30));
	}
	
	@Test
	public void testaValidaCodigoProduto() {
		assertEquals(true, produtoRepository.validaCodigo(30));
	}
	
	@Test
	public void testaexcluiProduto() {
		produtoRepository.excluiProduto(produto1);
		assertEquals(null, produtoRepository.getProdutoPeloCodigo(30));
	}
	
	@Test
	public void testaRetornaProdutosdisponiveisEmArray() {
		Produto[] produtos = produtoRepository.retornaProdutosDisponiveisEmArray();
		assertEquals(true, produtos[0].getDisponivel());
	}

	@Test
	public void testaRetornaTodosProdutosEmArray() {
		Produto[] produtos = produtoRepository.retornaTodosProdutosEmArray();
		Produto produtoSaida = null;
		for (Produto produto : produtos){
			if(!produto.getDisponivel()) produtoSaida = produto; 
		}
		assertEquals(false, produtoSaida.getDisponivel());
	}
}
